#pragma once
/*
    根据协议 分析、处理请求
*/

#include <iostream>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>

#include "1_util.hpp"

class ThreadEntry
{
private:
    // int _sock;
public:
    // Handler Request
    static void HanderRequest(int sock)
    {
        std::cout << "get a new sock: " << sock << std::endl;
        std::string line;
        Util::ReadLine(sock, line); //可以完整的读取一行的信息
                                    //于是 定义多个string类型，就意味着可以接受一个完整的请求报头结构体
                                    //如何使用这个结构体？
        std::cout << line << std::endl;
// #ifndef DEBUG
// //#define DEBUG
//         char buffer[1024 * 4];
//         // recv 与 read基本相同，但recv特殊在最后一个flag参数，可以控制数据接收行为
//         // MSG_DONTWAIT非阻塞模式  MSG_PEEK查看数据但不从缓冲区移除，下次调用仍可读取相同数据
//         // MSG_WAITALL尝试接收指定长度的全部数据，直到满足条件或发生错误
//         recv(sock, buffer, sizeof(buffer), 0);
//         std::cout << "==============begin============" << std::endl;
//         std::cout << buffer << std::endl;
//         std::cout << "===============end==============" << std::endl;
// #endif
        close(sock);
        return;
    }
};